SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROCEDURE [dbo].[spAltaAlumnomasivgrupos]

@Grupo int,
@Documento int,
@Tipo int,
@Apellidos varchar(50),
@Nombres varchar(50),
@TipoDomicilio int,
@Calle varchar(50),
@Numero int,
@Piso varchar(5),
@Departamento varchar(5),
@RefGeografica varchar(50),
@Seccion varchar(5),
@Parcela varchar(5),
@Localidad int,
@Telefono varchar(20),
@LugarDeNacimiento int,
@CodigoPostal varchar(20),
@Sexo int,
@FechaNacimiento datetime,
@EstadoCivil int,
@Nacionalidad int,
@Seguro int,
@Cohorte int, 
@DocRepresentanteBecas int,
@NombreRepresentanteBecas varchar(50), 
@cuise  int,
@idAnterior int,
@Observaciones varchar(250),
@Escolarizado varchar(1),
@LenguaFamilia int,
@UrbanoRural varchar(1),
@incapacidad int,
@Provincia int,
@Cargo varchar(20),
@stamp datetime

-- Parametro para especifica que operacion es A=Alta, B=Baja, M=Modificacion


AS
SET NOCOUNT ON
declare @Desde datetime
declare @Hasta datetime
declare @PaseDeOrigen int
declare @InscripcionDeOrigen int
declare @Baja varchar(1)
declare @CausaBaja int

--Esto es por defecto para el ingreso de matriculacion
select @Desde = '01/03/2004'
select @Hasta = null
select @PaseDeOrigen = null
select @inscripciondeorigen = null
select @baja = 'N'
select @causaBaja = null

--SET @Mnemo = RTRIM(LTRIM(@Mnemo))

--declare @Falta datetime
--Select @Falta = cast(@FechaAlta as datetime)
--if (@FechaBaja <> 'null') begin
--declare @FBaja datetime
--Select @FBaja = cast(@FechaBaja as datetime)
--end
declare @abm int
declare @mensaje int
declare @mess varchar(200)
select @mess = 'El Alumno ya existe y esta asignado a la division seleccionada'
declare @idalumno int

if exists (Select * from tb_alumnos where Documento = @Documento ) begin

select @idalumno= idAlumno from tb_alumnos where documento = @Documento  -- antes:  and cuise = @cuise 
if not exists (Select * from tb_AlumnoGrupo where Alumno = @idalumno and Grupo =@Grupo and AnioLectivo = 2004 ) begin
INSERT INTO tb_AlumnoGrupo (Alumno,Grupo,AnioLectivo,Desde,Hasta,PaseDeOrigen,InscripcionDeOrigen,Baja,CausaBaja)
VALUES (@idAlumno,@Grupo,2004,@Desde,@Hasta,@PaseDeOrigen,@InscripcionDeOrigen,@Baja,@CausaBaja)

select @mensaje = 2,@mess = 'El alumno ya existe, solo se ha cargado en la division correspondiente'

end
set @ABM = 3
end
else begin
set @ABM = 1
end

if @ABM = 1 begin
BEGIN TRANSACTION
INSERT INTO tb_alumnos (Documento,Tipo, Apellidos,Nombres,TipoDomicilio,Calle,Numero,Piso,Departamento,RefGeografica,Seccion,Parcela,Localidad,Telefono,LugarDeNacimiento,CodigoPostal,Sexo,FechaNacimiento,EstadoCivil,Nacionalidad,Seguro,Cohorte,DocRepresentanteBecas,NombreRepresentanteBecas,cuise,idAnterior,Observaciones,Escolarizado,LenguaFamilia,UrbanoRural,incapacidad,Provincia,cargo,hora)
VALUES(@Documento,@Tipo,@Apellidos,@Nombres,@TipoDomicilio,@Calle,@Numero,@Piso,@Departamento,@RefGeografica,@Seccion,@Parcela,@Localidad,@Telefono,@LugarDeNacimiento,@CodigoPostal,@Sexo,@FechaNacimiento,@EstadoCivil,@Nacionalidad,@Seguro,@Cohorte,@DocRepresentanteBecas,@NombreRepresentanteBecas,@cuise,@idAnterior,@Observaciones,@Escolarizado,@LenguaFamilia,@UrbanoRural,@incapacidad,@Provincia,@cargo,@stamp)

--Registrar la matriculacion

select @idalumno= idAlumno from tb_alumnos where documento = @Documento and cuise = @cuise

INSERT INTO tb_AlumnoGrupo (Alumno,Grupo,AnioLectivo,Desde,Hasta,PaseDeOrigen,InscripcionDeOrigen,Baja,CausaBaja,cargo,hora)
VALUES (@idAlumno,@Grupo,2004,@Desde,@Hasta,@PaseDeOrigen,@InscripcionDeOrigen,@Baja,@CausaBaja,@cargo,@stamp)
select @mensaje = 2,@mess = 'El alumno se ha cargado y asignado a la division correspondiente'

if @@error = 0
	COMMIT TRAN
else
	ROLLBACK TRAN

end

select @mess as messenger
GO
